package com.lakeworks.service;

import com.lakeworks.common.domain.channel.*;
import com.lakeworks.domain.SysChannel;
import org.springframework.http.ResponseEntity;

import java.util.List;

/**
 * @Author: Auxps
 * @Date: 2023/3/9
 * Description:
 */
public interface IThirdChannelService {
    /**
     * 入厂单导入
     */
    ResponseEntity pickupImport(String pickupNo, PickupImport pickupImport);

    /**
     * 入厂单修改
     */
    ResponseEntity pickupUpdate(String pickupNo, ExpressAlter expressAlter);

    /**
     * 入厂单取消
     */
    ResponseEntity deletePickup(String pickupNo);

    /**
     * 下发出厂单
     */
    ResponseEntity syncShipment(String shipmentNo, ShipmentImport shipmentImport);

    /**
     * 出厂单物流信息
     */
    ResponseEntity express(String shipmentNo, ExpressInfo expressInfo);

    /**
     * 入厂单状态查询
     */
    ResponseEntity getPickupInfo(String pickupNo);

    /**
     * 产品状态查询
     *
     * @param pickupNo
     * @param barcode
     * @return
     */
    ResponseEntity getProductInfo(String pickupNo, String barcode);

    ResponseEntity getShipmentInfo(String shipmentNo);


    /**
     * 添加系统产品信息
     *
     * @return
     */
    ResponseEntity addSysProduct(String code, SysProductInfo sysProductInfo);

    /**
     * 修改系统产品信息
     *
     * @return
     */
    ResponseEntity updateSysProduct(String code, SysProductInfo sysProductInfo);

    /**
     * 删除系统产品信息
     *
     * @return
     */
    ResponseEntity deleteSysProduct(String code);

    ResponseEntity updateMerchandises(String pickupNo, String code);

    ResponseEntity updateProducts(String shipmentNo, List<String> bracodes);

    ResponseEntity addMerchandises(String pickupNo, List<MerchandiseItem> merchandises);

    ResponseEntity holdOrder(String orderNo);

    SysChannel getSysChannel();

    ResponseEntity expressStatus(ExpressVo expressVo);

    ResponseEntity pickupCancel(String pickupNo);

    ResponseEntity statusByBarcode(String barcode);

    ResponseEntity getBarcodes(QuaryVo quaryVo);

    ResponseEntity updateProductCode(String barcode, String code);

    /**
     * 添加系统瑕疵信息
     * @return
     */
    //ResponseEntity addSysDefetive(Long id,SysDefectiveInfo sysDefectiveInfo);

    /**
     * 修改系统瑕疵信息
     * @return
     */
    //ResponseEntity updateSysDefetive(Long id,SysDefectiveInfo sysDefectiveInfo);

    /**
     * 删除系统瑕疵信息
     * @return
     */
    //ResponseEntity deleteSysDefetive(Long id);


}
